package com.jmb.api.common.utils;

public class InterfaceConstants {

    /**
     * 依赖项匹配正则表达式，用于匹配形如${...}的依赖项语法
     */
    public static final String DEPENDENCY_REGEX = "\\$\\{.+?}";

    /**
     * 依赖项索引匹配正则表达式，用于匹配形如variable[index]的语法结构
     */
    public static final String DEPENDENCY_REGEX_INDEX = "[a-zA-Z]+\\[[0-9]+]";

    /**
     * 依赖项参数匹配正则表达式，用于匹配函数调用形式的参数语法
     */
    public static final String DEPENDENCY_REGEX_PARAMS = "\\w+\\((,?|(\'.*\')?|\\s?)+\\)$";

    /**
     * 处理器匹配正则表达式，用于匹配形如#{...}的处理器语法
     */
    public static final String PROCESSOR_REGEX = "#\\{.+?}";

    /**
     * 默认连接超时时间，单位毫秒
     * 值为30秒
     */
    public static final int DEFAULT_CONNECT_TIMEOUT = 30 * 1000;

    /**
     * 默认读取超时时间，单位毫秒
     * 值为30秒
     */
    public static final int DEFAULT_READ_TIMEOUT = 30 * 1000;

    /**
     * 代理类型标识
     * 用于网络请求配置中的代理设置
     */
    public static final Integer PROXY_TYPE = 0;

    /**
     * 连接超时类型标识
     * 用于网络请求配置中连接超时参数的类型标记
     */
    public static final Integer CONNECT_TIMEOUT_TYPE = 3;

    /**
     * 读取超时类型标识
     * 用于网络请求配置中读取超时参数的类型标记
     */
    public static final Integer READ_TIMEOUT_TYPE = 4;


    // 默认请求头
    public static final String[] DEFAULT_USER_AGENT = {"" +
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " +
            "Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0"};
    public static final String[] DEFAULT_ACCEPT = {"*/*"};
    public static final String[] DEFAULT_ACCEPT_ENCODING = {"gzip,deflate,br"};
    public static final String[] DEFAULT_ACCEPT_LANGUAGE = {"zh-CN,zh;q=0.9"};

    // Request请求中解析url的使用
    public static final String URL_REGEX = "\\{(\\w)+}";

    // 调用中心类
    public static final String INVOKE_CENTER_CLASS = "com.jmb.api.common.center.InvokeCenter";
}
